#define _CRT_SECURE_NO_WARNINGS 1

//1 2 3 4 5
//-4  -3  -2  -1  *end
//
//#include <stdio.h>
//void rotate(int* nums, int numsSize, int k) {
//    int* end = nums + numsSize -1;
//    int* fis = nums;
//    int i = 0;
//    for (i = 0; i < k; i++)
//    {
//        int tmp = *end;
//        int j = 0;
//        for (j = 0; j < numsSize - 1; j++)
//        {
//            *(end - j) = *(end - j - 1);
//        }
//        *fis = tmp;
//    }
//}
//
//int main()
//{
//    int arr[] = {1,2,3,4,5,6};
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    rotate(arr, sz, 3);
//    return 0;
//}


//void resever(int* arr, int left, int right)
//{
//    while (left < right)
//    {
//        int tmp = arr[left];
//        arr[left] = arr[right];
//        arr[right] = tmp;
//        left++;
//        right--;
//    }
//}
//
//void rotate(int* nums, int numsSize, int k) {
//    k %= numsSize;
//    resever(nums, 0, numsSize - 1);
//    resever(nums, 0, k - 1);
//    resever(nums, k, numsSize - 1);
//}
//
//int main()
//{
//    int arr[] = { 1,2,3,4,5,6 };
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    rotate(arr, sz, 3);
//    return 0;
//}



#include <stdio.h>

int missingNumber(int* nums, int numsSize) {
    int i = 0;
    int j = 0;
    int sum = 0;
    int n = 0;
    for (i = 0; i < numsSize; i++)
    {
        sum += *(nums + i);
    }
    for (j = 0; j < numsSize + 1; j++)
    {
        n += j;
    }
    return n - sum;
}

int main()
{
    int arr[] = { 0,1,3,5,6,7,8,9,4 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    printf("%d\n",missingNumber(arr, sz));
    return 0;
}